﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


using System.Data;
using System.Data.SqlClient;

namespace CapaDatos
{
    public class DRegistro_Ventas
    {


        //valiables
        private int _Idregistroventas;
        private DateTime _Fecha_Emision;
        private DateTime _Fecha_Vencimiento;
        private int _Idtabla10;
        private string _Serie_Tabla11;
        private int _Idproveedor;
        private string _Glosa;
        private decimal _Valor_Facturado;
        private decimal _Base_Imponible;
        private decimal _Exonerado;
        private decimal _Inafecta;
        private decimal _Isc;
        private decimal _Igv;
        private decimal _Otros_Tributos_Cargos;
        private string _Tipo_Cambio;
        private DateTime _Rp_Fecha;
        private int _Rp_Tipo;
        private string _Rp_Serie;
        private string _Rp_Num_Comprobante;
        private int _Idplancontable;
        private string _Cuenta;
        private string _Descripcion;
        private decimal _Debe;
        private decimal _Haber;
        private int _IdTrabajador;
        private string _TextoBuscar;

        //Metodos
        //SETTER AND GETTER
        
        public int Idregistroventas
        {
          get { return _Idregistroventas; }
          set { _Idregistroventas = value; }
        }
        public DateTime Fecha_Emision
        {
            get { return _Fecha_Emision; }
            set { _Fecha_Emision = value; }
        }

        public DateTime Fecha_Vencimiento
        {
            get { return _Fecha_Vencimiento; }
            set { _Fecha_Vencimiento = value; }
        }


        public string Serie_Tabla11
        {
            get { return _Serie_Tabla11; }
            set { _Serie_Tabla11 = value; }
        }



        public decimal Base_Imponible
        {
            get { return _Base_Imponible; }
            set { _Base_Imponible = value; }
        }



        public decimal Isc
        {
            get { return _Isc; }
            set { _Isc = value; }
        }

        public decimal Otros_Tributos_Cargos
        {
            get { return _Otros_Tributos_Cargos; }
            set { _Otros_Tributos_Cargos = value; }
        }


        public string Tipo_Cambio
        {
            get { return _Tipo_Cambio; }
            set { _Tipo_Cambio = value; }
        }

        public DateTime Rp_Fecha
        {
            get { return _Rp_Fecha; }
            set { _Rp_Fecha = value; }
        }



        public int Rp_Tipo
        {
            get { return _Rp_Tipo; }
            set { _Rp_Tipo = value; }
        }
        public string Rp_Serie
        {
            get { return _Rp_Serie; }
            set { _Rp_Serie = value; }
        }

        public string Rp_Num_Comprobante
        {
            get { return _Rp_Num_Comprobante; }
            set { _Rp_Num_Comprobante = value; }
        }


        public int Idproveedor
        {
            get { return _Idproveedor; }
            set { _Idproveedor = value; }
        }
        public int Idtabla10
        {
            get { return _Idtabla10; }
            set { _Idtabla10 = value; }
        }

        public string Glosa
        {
            get { return _Glosa; }
            set { _Glosa = value; }
        }


        public int Idplancontable
        {
            get { return _Idplancontable; }
            set { _Idplancontable = value; }
        }

        public decimal Debe
        {
            get { return _Debe; }
            set { _Debe = value; }
        }

        public decimal Haber
        {
            get { return _Haber; }
            set { _Haber = value; }
        }

        public int IdTrabajador
        {
            get { return _IdTrabajador; }
            set { _IdTrabajador = value; }
        }

        public decimal Valor_Facturado
        {
            get { return _Valor_Facturado; }
            set { _Valor_Facturado = value; }
        }

        public decimal Exonerado
        {
            get { return _Exonerado; }
            set { _Exonerado = value; }
        }

        public decimal Inafecta
        {
            get { return _Inafecta; }
            set { _Inafecta = value; }
        }


        public string TextoBuscar
        {
            get { return _TextoBuscar; }
            set { _TextoBuscar = value; }
        }


        public string Descripcion
        {
            get { return _Descripcion; }
            set { _Descripcion = value; }
        }

        public string Cuenta
        {
            get { return _Cuenta; }
            set { _Cuenta = value; }
        }

        public decimal Igv
        {
            get { return _Igv; }
            set { _Igv = value; }
        }
        //Constructores
        public DRegistro_Ventas()
        {

        }
        public DRegistro_Ventas(
            int idregistroventas,
            DateTime fecha_emision,
            DateTime fecha_vencimiento,
            string serie_tabla11,
            int idtabla10,
            int idproveedor,
            string glosa,
            decimal valor_facturado,
            decimal base_imponible,
            decimal exonerado,
            decimal inafecta,
            decimal isc,
            decimal igv,
            decimal otros_tributos_cargos,
            string tipo_cambio,
            DateTime rp_fecha,
            int rp_tipo,
            string rp_serie,
            string rp_num_comprobante,
            int idplancontable,
            string cuenta,
            string descripcion,
            decimal debe,
            decimal haber,
            int idtrabajador,
            string textobuscar)
        {
            this.Idregistroventas = idregistroventas; 
            this.Fecha_Emision = fecha_emision;
            this.Fecha_Vencimiento = fecha_vencimiento;
            this.Serie_Tabla11 = serie_tabla11;
            this.Idtabla10 = idtabla10;
            this.Idproveedor = idproveedor;
            this.Glosa = glosa;
            this.Valor_Facturado = valor_facturado;
            this.Base_Imponible = base_imponible;
            this.Exonerado = exonerado;
            this.Inafecta = inafecta;
            this.Isc = isc;
            this.Igv = igv;
            this.Otros_Tributos_Cargos = otros_tributos_cargos;
            this.Tipo_Cambio = tipo_cambio;
            this.Rp_Fecha = rp_fecha;
            this.Rp_Tipo = rp_tipo;
            this.Rp_Serie = rp_serie;
            this.Rp_Num_Comprobante = rp_num_comprobante;
            this.Idplancontable = idplancontable;
            this.Cuenta = cuenta;
            this.Descripcion = Descripcion;
            this.Debe = debe;
            this.Haber = haber;
            this.IdTrabajador = idtrabajador;
            this.TextoBuscar = textobuscar;

        }
        //Método Insertar  

        public string Insertar(DRegistro_Ventas Registro_Ventas)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código  
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el Comando  
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spinsertar_registro_ventas";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdregistroventas = new SqlParameter();
                ParIdregistroventas.ParameterName = "@idregistroventas";
                ParIdregistroventas.SqlDbType = SqlDbType.Int;
                ParIdregistroventas.Direction = ParameterDirection.Output;
                SqlCmd.Parameters.Add(ParIdregistroventas);


                SqlParameter ParFecha_Emision = new SqlParameter();
                ParFecha_Emision.ParameterName = "@fecha_emision";
                ParFecha_Emision.SqlDbType = System.Data.SqlDbType.DateTime;
                ParFecha_Emision.Size = 40;
                ParFecha_Emision.Value = Registro_Ventas.Fecha_Emision;
                SqlCmd.Parameters.Add(ParFecha_Emision);

                SqlParameter ParFecha_Vencimiento = new SqlParameter();
                ParFecha_Vencimiento.ParameterName = "@fecha_vencimiento";
                ParFecha_Vencimiento.SqlDbType = System.Data.SqlDbType.DateTime;
                ParFecha_Vencimiento.Size = 40;
                ParFecha_Vencimiento.Value = Registro_Ventas.Fecha_Vencimiento;
                SqlCmd.Parameters.Add(ParFecha_Vencimiento);

                SqlParameter ParSerie_Tabla11 = new SqlParameter();
                ParSerie_Tabla11.ParameterName = "@serie_tabla11";
                ParSerie_Tabla11.SqlDbType = SqlDbType.VarChar;
                ParSerie_Tabla11.Size = 20;
                ParSerie_Tabla11.Value = Registro_Ventas.Serie_Tabla11;
                SqlCmd.Parameters.Add(ParSerie_Tabla11);


                SqlParameter ParGlosa = new SqlParameter();
                ParGlosa.ParameterName = "@glosa";
                ParGlosa.SqlDbType = SqlDbType.VarChar;
                ParGlosa.Size = 100;
                ParGlosa.Value = Registro_Ventas.Glosa;
                SqlCmd.Parameters.Add(ParGlosa);

                SqlParameter ParValores_Nogravados = new SqlParameter();
                ParValores_Nogravados.ParameterName = "@valor_facturado";
                ParValores_Nogravados.SqlDbType = SqlDbType.Decimal;
                ParValores_Nogravados.Precision = 10;
                ParValores_Nogravados.Scale = 2;
                ParValores_Nogravados.Value = Registro_Ventas.Valor_Facturado;
                SqlCmd.Parameters.Add(ParValores_Nogravados);

                SqlParameter ParBase_Imponible = new SqlParameter();
                ParBase_Imponible.ParameterName = "@base_imponible";
                ParBase_Imponible.SqlDbType = SqlDbType.Decimal;
                ParBase_Imponible.Precision = 10;
                ParBase_Imponible.Scale = 2;
                ParBase_Imponible.Value = Registro_Ventas.Base_Imponible;
                SqlCmd.Parameters.Add(ParBase_Imponible);


                SqlParameter ParExonerada = new SqlParameter();
                ParExonerada.ParameterName = "@exonerado";
                ParExonerada.SqlDbType = SqlDbType.Decimal;
                ParExonerada.Precision = 10;
                ParExonerada.Scale = 2;
                ParExonerada.Value = Registro_Ventas.Exonerado;
                SqlCmd.Parameters.Add(ParExonerada);


                SqlParameter ParInafecta = new SqlParameter();
                ParInafecta.ParameterName = "@inafecta";
                ParInafecta.SqlDbType = SqlDbType.Decimal;
                ParInafecta.Precision = 10;
                ParInafecta.Scale = 2;
                ParInafecta.Value = Registro_Ventas.Inafecta;
                SqlCmd.Parameters.Add(ParInafecta);


                SqlParameter ParIsc = new SqlParameter();
                ParIsc.ParameterName = "@isc";
                ParIsc.SqlDbType = SqlDbType.Decimal;
                ParIsc.Precision = 10;
                ParIsc.Scale = 2;
                ParIsc.Value = Registro_Ventas.Isc;
                SqlCmd.Parameters.Add(ParIsc);


                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType = SqlDbType.Decimal;
                ParIgv.Precision = 10;
                ParIgv.Scale = 2;
                ParIgv.Value = Registro_Ventas.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParoTros_Tributos_Cargados = new SqlParameter();
                ParoTros_Tributos_Cargados.ParameterName = "@otros_tributos_cargos";
                ParoTros_Tributos_Cargados.SqlDbType = SqlDbType.Decimal;
                ParoTros_Tributos_Cargados.Precision = 10;
                ParoTros_Tributos_Cargados.Scale = 2;
                ParoTros_Tributos_Cargados.Value = Registro_Ventas.Otros_Tributos_Cargos;
                SqlCmd.Parameters.Add(ParoTros_Tributos_Cargados);


                SqlParameter ParTipo_Cambio = new SqlParameter();
                ParTipo_Cambio.ParameterName = "@tipo_cambio";
                ParTipo_Cambio.SqlDbType = SqlDbType.VarChar;
                ParTipo_Cambio.Size = 10;
                ParTipo_Cambio.Value = Registro_Ventas.Tipo_Cambio;
                SqlCmd.Parameters.Add(ParTipo_Cambio);


                SqlParameter ParRp_Fecha = new SqlParameter();
                ParRp_Fecha.ParameterName = "@rp_fecha";
                ParRp_Fecha.SqlDbType = System.Data.SqlDbType.DateTime;
                ParRp_Fecha.Size = 40;
                ParRp_Fecha.Value = Registro_Ventas.Rp_Fecha;
                SqlCmd.Parameters.Add(ParRp_Fecha);


                SqlParameter ParRp_Tipo = new SqlParameter();
                ParRp_Tipo.ParameterName = "@rp_tipo";
                ParRp_Tipo.SqlDbType = SqlDbType.Int;
                ParRp_Tipo.Value = Registro_Ventas.Rp_Tipo;
                SqlCmd.Parameters.Add(ParRp_Tipo);


                SqlParameter ParRp_Serie = new SqlParameter();
                ParRp_Serie.ParameterName = "@rp_serie";
                ParRp_Serie.SqlDbType = SqlDbType.VarChar;
                ParRp_Serie.Size = 20;
                ParRp_Serie.Value = Registro_Ventas.Rp_Serie;
                SqlCmd.Parameters.Add(ParRp_Serie);

                SqlParameter ParRp_Num_Comprobante = new SqlParameter();
                ParRp_Num_Comprobante.ParameterName = "@rp_num_comprobante";
                ParRp_Num_Comprobante.SqlDbType = SqlDbType.VarChar;
                ParRp_Num_Comprobante.Size = 20;
                ParRp_Num_Comprobante.Value = Registro_Ventas.Rp_Num_Comprobante;
                SqlCmd.Parameters.Add(ParRp_Num_Comprobante);


                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@idpersonaempresa";
                ParIdproveedor.SqlDbType = SqlDbType.Int;
                ParIdproveedor.Value = Registro_Ventas.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);

                SqlParameter ParIdtabla10 = new SqlParameter();
                ParIdtabla10.ParameterName = "@idtabla10";
                ParIdtabla10.SqlDbType = SqlDbType.Int;
                ParIdtabla10.Value = Registro_Ventas.Idtabla10;
                SqlCmd.Parameters.Add(ParIdtabla10);


                SqlParameter ParIdplancontable = new SqlParameter();
                ParIdplancontable.ParameterName = "@idplancontable";
                ParIdplancontable.SqlDbType = SqlDbType.Int;
                ParIdplancontable.Value = Registro_Ventas.Idplancontable;
                SqlCmd.Parameters.Add(ParIdplancontable);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType = SqlDbType.Int;
                ParIdtrabajador.Value = Registro_Ventas.IdTrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);


                SqlParameter ParCuenta = new SqlParameter();
                ParCuenta.ParameterName = "@cuenta";
                ParCuenta.SqlDbType = SqlDbType.VarChar;
                ParCuenta.Size = 225;
                ParCuenta.Value = Registro_Ventas.Cuenta;
                SqlCmd.Parameters.Add(ParCuenta);

                SqlParameter ParDescripcion = new SqlParameter();
                ParDescripcion.ParameterName = "@descripcion";
                ParDescripcion.SqlDbType = SqlDbType.VarChar;
                ParDescripcion.Size = 225;
                ParDescripcion.Value = Registro_Ventas.Descripcion;
                SqlCmd.Parameters.Add(ParDescripcion);



                SqlParameter ParDebe = new SqlParameter();
                ParDebe.ParameterName = "@debe";
                ParDebe.SqlDbType = SqlDbType.Decimal;
                ParDebe.Precision = 10;
                ParDebe.Scale = 2;
                ParDebe.Value = Registro_Ventas.Debe;
                SqlCmd.Parameters.Add(ParDebe);


                SqlParameter ParHaber = new SqlParameter();
                ParHaber.ParameterName = "@haber";
                ParHaber.SqlDbType = SqlDbType.Decimal;
                ParHaber.Precision = 10;
                ParHaber.Scale = 2;
                ParHaber.Value = Registro_Ventas.Haber;
                SqlCmd.Parameters.Add(ParHaber);

                //Ejecutamos nuestro comando  
                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Ingreso el Registro";

            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;

        }


        //Método Editar
        public string Editar(DRegistro_Ventas Registro_Ventas)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código  
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el Comando  
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "speditar_registro_ventas";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdregistroventas = new SqlParameter();
                ParIdregistroventas.ParameterName = "@idregistroventas";
                ParIdregistroventas.SqlDbType = SqlDbType.Int;
                ParIdregistroventas.Value = Registro_Ventas.Idregistroventas;
                SqlCmd.Parameters.Add(ParIdregistroventas);


                SqlParameter ParFecha_Emision = new SqlParameter();
                ParFecha_Emision.ParameterName = "@fecha_emision";
                ParFecha_Emision.SqlDbType = System.Data.SqlDbType.DateTime;
                ParFecha_Emision.Size = 40;
                ParFecha_Emision.Value = Registro_Ventas.Fecha_Emision;
                SqlCmd.Parameters.Add(ParFecha_Emision);

                SqlParameter ParFecha_Vencimiento = new SqlParameter();
                ParFecha_Vencimiento.ParameterName = "@fecha_vencimiento";
                ParFecha_Vencimiento.SqlDbType = System.Data.SqlDbType.DateTime;
                ParFecha_Vencimiento.Size = 40;
                ParFecha_Vencimiento.Value = Registro_Ventas.Fecha_Vencimiento;
                SqlCmd.Parameters.Add(ParFecha_Vencimiento);

                SqlParameter ParSerie_Tabla11 = new SqlParameter();
                ParSerie_Tabla11.ParameterName = "@serie_tabla11";
                ParSerie_Tabla11.SqlDbType = SqlDbType.VarChar;
                ParSerie_Tabla11.Size = 20;
                ParSerie_Tabla11.Value = Registro_Ventas.Serie_Tabla11;
                SqlCmd.Parameters.Add(ParSerie_Tabla11);


                SqlParameter ParGlosa = new SqlParameter();
                ParGlosa.ParameterName = "@glosa";
                ParGlosa.SqlDbType = SqlDbType.VarChar;
                ParGlosa.Size = 100;
                ParGlosa.Value = Registro_Ventas.Glosa;
                SqlCmd.Parameters.Add(ParGlosa);

                SqlParameter ParValores_Nogravados = new SqlParameter();
                ParValores_Nogravados.ParameterName = "@valor_facturado";
                ParValores_Nogravados.SqlDbType = SqlDbType.Decimal;
                ParValores_Nogravados.Precision = 10;
                ParValores_Nogravados.Scale = 2;
                ParValores_Nogravados.Value = Registro_Ventas.Valor_Facturado;
                SqlCmd.Parameters.Add(ParValores_Nogravados);

                SqlParameter ParBase_Imponible = new SqlParameter();
                ParBase_Imponible.ParameterName = "@base_imponible";
                ParBase_Imponible.SqlDbType = SqlDbType.Decimal;
                ParBase_Imponible.Precision = 10;
                ParBase_Imponible.Scale = 2;
                ParBase_Imponible.Value = Registro_Ventas.Base_Imponible;
                SqlCmd.Parameters.Add(ParBase_Imponible);


                SqlParameter ParExonerada = new SqlParameter();
                ParExonerada.ParameterName = "@exonerado";
                ParExonerada.SqlDbType = SqlDbType.Decimal;
                ParExonerada.Precision = 10;
                ParExonerada.Scale = 2;
                ParExonerada.Value = Registro_Ventas.Exonerado;
                SqlCmd.Parameters.Add(ParExonerada);


                SqlParameter ParInafecta = new SqlParameter();
                ParInafecta.ParameterName = "@inafecta";
                ParInafecta.SqlDbType = SqlDbType.Decimal;
                ParInafecta.Precision = 10;
                ParInafecta.Scale = 2;
                ParInafecta.Value = Registro_Ventas.Inafecta;
                SqlCmd.Parameters.Add(ParInafecta);


                SqlParameter ParIsc = new SqlParameter();
                ParIsc.ParameterName = "@isc";
                ParIsc.SqlDbType = SqlDbType.Decimal;
                ParIsc.Precision = 10;
                ParIsc.Scale = 2;
                ParIsc.Value = Registro_Ventas.Isc;
                SqlCmd.Parameters.Add(ParIsc);


                SqlParameter ParIgv = new SqlParameter();
                ParIgv.ParameterName = "@igv";
                ParIgv.SqlDbType = SqlDbType.Decimal;
                ParIgv.Precision = 10;
                ParIgv.Scale = 2;
                ParIgv.Value = Registro_Ventas.Igv;
                SqlCmd.Parameters.Add(ParIgv);

                SqlParameter ParoTros_Tributos_Cargados = new SqlParameter();
                ParoTros_Tributos_Cargados.ParameterName = "@otros_tributos_cargos";
                ParoTros_Tributos_Cargados.SqlDbType = SqlDbType.Decimal;
                ParoTros_Tributos_Cargados.Precision = 10;
                ParoTros_Tributos_Cargados.Scale = 2;
                ParoTros_Tributos_Cargados.Value = Registro_Ventas.Otros_Tributos_Cargos;
                SqlCmd.Parameters.Add(ParoTros_Tributos_Cargados);


                SqlParameter ParTipo_Cambio = new SqlParameter();
                ParTipo_Cambio.ParameterName = "@tipo_cambio";
                ParTipo_Cambio.SqlDbType = SqlDbType.VarChar;
                ParTipo_Cambio.Size = 10;
                ParTipo_Cambio.Value = Registro_Ventas.Tipo_Cambio;
                SqlCmd.Parameters.Add(ParTipo_Cambio);


                SqlParameter ParRp_Fecha = new SqlParameter();
                ParRp_Fecha.ParameterName = "@rp_fecha";
                ParRp_Fecha.SqlDbType = System.Data.SqlDbType.DateTime;
                ParRp_Fecha.Size = 40;
                ParRp_Fecha.Value = Registro_Ventas.Rp_Fecha;
                SqlCmd.Parameters.Add(ParRp_Fecha);


                SqlParameter ParRp_Tipo = new SqlParameter();
                ParRp_Tipo.ParameterName = "@rp_tipo";
                ParRp_Tipo.SqlDbType = SqlDbType.Int;
                ParRp_Tipo.Value = Registro_Ventas.Rp_Tipo;
                SqlCmd.Parameters.Add(ParRp_Tipo);


                SqlParameter ParRp_Serie = new SqlParameter();
                ParRp_Serie.ParameterName = "@rp_serie";
                ParRp_Serie.SqlDbType = SqlDbType.VarChar;
                ParRp_Serie.Size = 20;
                ParRp_Serie.Value = Registro_Ventas.Rp_Serie;
                SqlCmd.Parameters.Add(ParRp_Serie);

                SqlParameter ParRp_Num_Comprobante = new SqlParameter();
                ParRp_Num_Comprobante.ParameterName = "@rp_num_comprobante";
                ParRp_Num_Comprobante.SqlDbType = SqlDbType.VarChar;
                ParRp_Num_Comprobante.Size = 20;
                ParRp_Num_Comprobante.Value = Registro_Ventas.Rp_Num_Comprobante;
                SqlCmd.Parameters.Add(ParRp_Num_Comprobante);


                SqlParameter ParIdproveedor = new SqlParameter();
                ParIdproveedor.ParameterName = "@idpersonaempresa";
                ParIdproveedor.SqlDbType = SqlDbType.Int;
                ParIdproveedor.Value = Registro_Ventas.Idproveedor;
                SqlCmd.Parameters.Add(ParIdproveedor);

                SqlParameter ParIdtabla10 = new SqlParameter();
                ParIdtabla10.ParameterName = "@idtabla10";
                ParIdtabla10.SqlDbType = SqlDbType.Int;
                ParIdtabla10.Value = Registro_Ventas.Idtabla10;
                SqlCmd.Parameters.Add(ParIdtabla10);


                SqlParameter ParIdplancontable = new SqlParameter();
                ParIdplancontable.ParameterName = "@idplancontable";
                ParIdplancontable.SqlDbType = SqlDbType.Int;
                ParIdplancontable.Value = Registro_Ventas.Idplancontable;
                SqlCmd.Parameters.Add(ParIdplancontable);

                SqlParameter ParIdtrabajador = new SqlParameter();
                ParIdtrabajador.ParameterName = "@idtrabajador";
                ParIdtrabajador.SqlDbType = SqlDbType.Int;
                ParIdtrabajador.Value = Registro_Ventas.IdTrabajador;
                SqlCmd.Parameters.Add(ParIdtrabajador);


                SqlParameter ParCuenta = new SqlParameter();
                ParCuenta.ParameterName = "@cuenta";
                ParCuenta.SqlDbType = SqlDbType.VarChar;
                ParCuenta.Size = 225;
                ParCuenta.Value = Registro_Ventas.Cuenta;
                SqlCmd.Parameters.Add(ParCuenta);

                SqlParameter ParDescripcion = new SqlParameter();
                ParDescripcion.ParameterName = "@descripcion";
                ParDescripcion.SqlDbType = SqlDbType.VarChar;
                ParDescripcion.Size = 225;
                ParDescripcion.Value = Registro_Ventas.Descripcion;
                SqlCmd.Parameters.Add(ParDescripcion);



                SqlParameter ParDebe = new SqlParameter();
                ParDebe.ParameterName = "@debe";
                ParDebe.SqlDbType = SqlDbType.Decimal;
                ParDebe.Precision = 10;
                ParDebe.Scale = 2;
                ParDebe.Value = Registro_Ventas.Debe;
                SqlCmd.Parameters.Add(ParDebe);


                SqlParameter ParHaber = new SqlParameter();
                ParHaber.ParameterName = "@haber";
                ParHaber.SqlDbType = SqlDbType.Decimal;
                ParHaber.Precision = 10;
                ParHaber.Scale = 2;
                ParHaber.Value = Registro_Ventas.Haber;
                SqlCmd.Parameters.Add(ParHaber);

                //Ejecutamos nuestro comando  
                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Actualizo el Registro";

            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;
        }

        //Método Eliminar  
        public string Eliminar(DRegistro_Ventas Registro_Ventas)
        {
            string rpta = "";
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                //Código  
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCon.Open();
                //Establecer el Comando  
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "speliminar_registro_ventas";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParIdarticulo = new SqlParameter();
                ParIdarticulo.ParameterName = "@idregistroventas";
                ParIdarticulo.SqlDbType = SqlDbType.Int;
                ParIdarticulo.Value = Registro_Ventas.Idregistroventas;
                SqlCmd.Parameters.Add(ParIdarticulo);
                //Ejecutamos nuestro comando  

                rpta = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "NO se Elimino el Registro";

            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (SqlCon.State == ConnectionState.Open) SqlCon.Close();
            }
            return rpta;
        }


        //Método Mostrar  
        public DataTable Mostrar()
        {
            DataTable DtResultado = new DataTable("registroventas");
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spmostrar_registro_ventas";
                SqlCmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
                SqlDat.Fill(DtResultado);

            }
            catch (Exception ex)
            {
                DtResultado = null;
            }
            return DtResultado;

        }

        //Método Buscar Fecha Emision  
        public DataTable BuscarCodigo(DRegistro_Ventas Registro_Ventas)
        {
            DataTable DtResultado = new DataTable("registroventas");
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                SqlCon.ConnectionString = Conexion.Cn;
                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "spbuscar_registro_ventas";
                SqlCmd.CommandType = CommandType.StoredProcedure;

                SqlParameter ParTextoBuscar = new SqlParameter();
                ParTextoBuscar.ParameterName = "@textbuscar";
                ParTextoBuscar.SqlDbType = SqlDbType.VarChar;
                ParTextoBuscar.Size = 50;
                ParTextoBuscar.Value = Registro_Ventas.TextoBuscar;
                SqlCmd.Parameters.Add(ParTextoBuscar);

                SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
                SqlDat.Fill(DtResultado);

            }
            catch (Exception ex)
            {
                DtResultado = null;
            }
            return DtResultado;

        }
    }
}
